wm withdraw .; wm geom .konsola 708x824+486+185; wm geom .output 379x700+1208+188; # Morasko ## testujemy uruchamianie clipsa i konwersacje z nim, 11.2019 # + uwaga: trzeba czekac na prompt "CLIPS> " zanim sie wysle kolejna cmd/odp !! # set cli [open {|./clips624 -f2 animal.clp} r+]; # wl clipsa... fconfigure $cli -blocking 0 fileevent $cli readable "cli_obsluga $cli" set pro 0 set buf {} proc cli_obsluga {cli} { global pro buf set x [read $cli] _puts "|$x|" set buf $x if {[string match "*CLIPS> " $x]} {set pro 1} # + tu moze byc reakcja na odp od clipsa # tj wysylanie odp http do przekladarki... # lacznie z odp koncowa i wylaczeniem clipsa... } vwait pro puts $cli "(reset)"; flush $cli vwait pro puts $cli "(run)"; flush $cli; vwait buf; set _ "buf=$buf" # + to ^^ robimy na poczatku... #% buf=Does your animal have a backbone? (yes no) set pro 0; puts $cli "yes"; flush $cli; vwait buf; set _ "pro=$pro; buf=$buf" #% pro=1; buf=yes CLIPS> #% pro=0; buf=I think your animal is a bat #% pro=0; buf=Can your animal fly? (yes no) #% pro=0; buf=Does your animal eat red meat? (yes no) #% pro=0; buf=Normally, does the female of your animal nurse its young with milk? (yes no) #% pro=0; buf=Is the animal warm blooded? (yes no) # + to ^^ powinno byc robione w cli_obsluga... puts $cli "(exit)"; close $cli; # wyl clipsa... # + to ^^ robimy po odpowiedzi koncowej... exec ps -O ppid exit